﻿// ===============================================================================
//  Copyright © ymind.net. All rights reserved .
//  官方网站：http://ymind.net/
//  版权所有：彦铭工作室 老陈出品
// ===============================================================================

using System;

namespace Lcsoft.TemplateEngine.XHtmlParser
{
	/// <summary>
	/// 表示 Token 对象。
	/// </summary>
	internal sealed class XHtmlToken
	{
		/// <summary>
		/// 初始化 <see cref="XHtmlToken"/> 类的新实例。
		/// </summary>
		/// <param name="data">内容。</param>
		/// <param name="line">行数。</param>
		/// <param name="column">列数。</param>
		public XHtmlToken(string data, int line, int column)
		{
			if (data == null) throw new ArgumentNullException("data");
			if (line <= 0) throw new ArgumentOutOfRangeException("line", "参数 line 的值必须大于 0。");
			if (column <= 0) throw new ArgumentOutOfRangeException("column", "参数 column 的值必须大于 0。");

			this.Line = line;
			this.Column = column;
			this.Data = data;
		}

		/// <summary>
		/// 获取 <see cref="XHtmlToken"/> 所在的列数。
		/// </summary>
		public int Column { get; private set; }

		/// <summary>
		///  获取或设置 <see cref="XHtmlToken"/> 内容。
		/// </summary>
		public string Data { get; set; }

		/// <summary>
		/// 获取 <see cref="XHtmlToken"/> 所在的行数。
		/// </summary>
		public int Line { get; private set; }
	}
}
